home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / cgibin_browsable.nasl < prev    next >
Text File  |  2005-03-31  |  2KB  |  95 lines

  1. #
  2. # Copyright 2000 by Hendrik Scholz <hendrik@scholz.net>
  3. #
  4.  
  5. if(description)
  6. {
  7.  script_id(10039);
  8.  script_version ("$Revision: 1.20 $");
  9.  name["english"] = "/cgi-bin directory browsable ?";
  10.  script_name(english:name["english"]);
  11.  
  12.  desc["english"] = "
  13. The /cgi-bin directory is browsable.
  14. This will show you the name of the installed common scripts 
  15. and those which are written by the webmaster and thus may be 
  16. exploitable.
  17.  
  18. Solution : Make the /cgi-bin non-browsable. 
  19.  
  20. Risk factor : Medium";
  21.  
  22.  
  23.  script_description(english:desc["english"]);
  24.  
  25.  summary["english"] = "Is /cgi-bin browsable ?";
  26.  
  27.  script_summary(english:summary["english"]);
  28.  
  29.  script_category(ACT_GATHER_INFO);
  30.  
  31.  
  32.  script_copyright(english:"This script is Copyright (C) 2000 Hendrik Scholz");
  33.  
  34.  family["english"] = "CGI abuses";
  35.  script_family(english:family["english"]);
  36.  
  37.  script_dependencie("find_service.nes", "http_version.nasl");
  38.  script_require_ports("Services/www", 80);
  39.  exit(0);
  40. }
  41.  
  42. #
  43. # The script code starts here
  44.  
  45. include("http_func.inc");
  46. include("http_keepalive.inc");
  47.  
  48.  
  49. port = get_http_port(default:80);
  50.  
  51. if(!get_port_state(port))exit(0);
  52.  
  53.  
  54. dirs = NULL;
  55. report_head = "
  56. The following CGI directories are browsable :
  57. ";
  58.  
  59. report_tail = "
  60.  
  61.  
  62. This shows an attacker the name of the installed common scripts and those 
  63. which are written by the webmaster and thus may be exploitable.
  64.  
  65. Solution : Make these directories non-browsable. 
  66.  
  67. Risk factor : Medium";
  68.  
  69. foreach dir (cgi_dirs())
  70. {
  71.  if ( strlen(dir) )
  72.  {
  73.  data = string(dir ,"/");
  74.  req = http_get(item:data, port:port);
  75.  buf = http_keepalive_send_recv(port:port, data:req);
  76.  if( buf == NULL ) exit(0);
  77.  if(ereg(pattern:"^HTTP/[0-9]\.[0-9] 200 ", string:buf))
  78.  {
  79.   buf = tolower(buf);
  80.   if(dir == "") must_see = "index of";
  81.   else must_see = string("<title>", dir);
  82.   if( must_see >< buf ){
  83.       dirs += '.  ' + dir + '\n';
  84.     }
  85.  }
  86.  }
  87. }
  88.  
  89. if (dirs != NULL )
  90. {
  91.  security_warning(port:port, data:report_head + dirs + report_tail);
  92. }
  93.  
  94.  
  95.